﻿#include "FITKAcousticsNCTResistive.h"
namespace Acoustics
{

    FITKAcousticsNCTResistive::~FITKAcousticsNCTResistive()
    {

    }

    // 获取层叠类型，返回 Resistive 类型
    FITKAcousticsNCTAbstractLayObj::NCTLayUpType FITKAcousticsNCTResistive::getNCTLayUpType()
    {
        return FITKAcousticsNCTAbstractLayObj::NCTLayUpType::Resistive;  // 返回 Resistive 层叠类型
    }

    // 获取单位面积质量：厚度 * 密度
    double FITKAcousticsNCTResistive::getMassPerUnitArea()
    {
        // 返回单位面积的质量，公式：厚度 * 密度
        return getThickness() * _density;  // 计算并返回单位面积质量
    }

    // 获取密度
    double FITKAcousticsNCTResistive::getDensity()
    {
        return _density;  // 返回材料的密度
    }

    // 设置密度
    void FITKAcousticsNCTResistive::setDensity(double density)
    {
        _density = density;  // 设置材料的密度
    }

    // 获取流动电阻率
    double FITKAcousticsNCTResistive::getFlowResistivity()
    {
        return _flowResistivity;  // 返回流动电阻率
    }

    // 设置流动电阻率
    void FITKAcousticsNCTResistive::setFlowResistivity(double flowResistivity)
    {
        _flowResistivity = flowResistivity;  // 设置流动电阻率
    }

    bool FITKAcousticsNCTResistive::copy(Core::FITKAbstractDataObject *obj)
    {
        //转换强制类型
        Acoustics::FITKAcousticsNCTResistive* resPtr = dynamic_cast<Acoustics::FITKAcousticsNCTResistive*>(obj);

        if(nullptr != resPtr)//判断是否转换成功
        {
            //复制成员变量
            _density = resPtr->getDensity();
            _flowResistivity = resPtr->getFlowResistivity();
        }


        // 调用父类的方法

        return Acoustics::FITKAcousticsNCTAbstractLayObj::copy(obj);
    }

}
